home *** CD-ROM | disk | FTP | other *** search
/ MacWorld 1999 November / Macworld (1999-11).dmg / Updaters / WhiteCap 3.0.4 / WhiteCap Source.sit / WhiteCap Source / Common / math / Plane.cpp < prev    next >
MacBinary  |  1999-07-24  |  2.6 KB  |  [TEXT/CWIE]

open in: MacOS 8.1     |     Win98     |     DOS

browse contents    |     view JSON data     |     view as text


This file was processed as: MacBinary (archive/macBinary).

ConfidenceProgramDetectionMatch TypeSupport
10% dexvert MacBinary (archive/macBinary) fallback Supported
1% dexvert Text File (text/txt) fallback Supported
100% file MacBinary II, inited, Sat Jul 24 18:26:20 1999, modified Sat Jul 24 18:26:20 1999, creator 'CWIE', type ASCII, 1984 bytes "Plane.cpp" , at 0x840 410 bytes resource default (weak)
99% file data default
74% TrID Macintosh plain text (MacBinary) default
25% TrID MacBinary 2 default (weak)
100% siegfried fmt/1762 MacBinary (II) default
100% lsar MacBinary default


id metadata
keyvalue
macFileType[TEXT]
macFileCreator[CWIE]



hex view
+--------+-------------------------+-------------------------+--------+--------+
|00000000| 00 09 50 6c 61 6e 65 2e | 63 70 70 00 00 00 00 00 |..Plane.|cpp.....|
|00000010| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000020| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000030| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000040| 00 54 45 58 54 43 57 49 | 45 01 00 00 00 00 00 00 |.TEXTCWI|E.......|
|00000050| 00 00 00 00 00 07 c0 00 | 00 01 9a b3 bf ee 0c b3 |........|........|
|00000060| bf ee 0c 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000070| 00 00 00 00 00 00 00 00 | 00 00 81 81 e3 ee 00 00 |........|........|
|00000080| 0d 23 69 6e 63 6c 75 64 | 65 20 22 50 6c 61 6e 65 |.#includ|e "Plane|
|00000090| 2e 68 22 0d 0d 0d 0d 0d | 76 6f 69 64 20 50 6c 61 |.h".....|void Pla|
|000000a0| 6e 65 3a 3a 73 65 74 28 | 20 50 46 6c 6f 61 74 20 |ne::set(| PFloat |
|000000b0| 69 6e 58 2c 20 50 46 6c | 6f 61 74 20 69 6e 59 2c |inX, PFl|oat inY,|
|000000c0| 20 50 46 6c 6f 61 74 20 | 69 6e 5a 2c 20 50 46 6c | PFloat |inZ, PFl|
|000000d0| 6f 61 74 20 69 6e 44 20 | 29 20 7b 0d 09 50 46 6c |oat inD |) {..PFl|
|000000e0| 6f 61 74 20 6d 20 3d 20 | 31 20 2f 20 28 20 69 6e |oat m = |1 / ( in|
|000000f0| 58 2a 69 6e 58 20 2b 20 | 69 6e 59 2a 69 6e 59 20 |X*inX + |inY*inY |
|00000100| 2b 20 69 6e 5a 2a 69 6e | 5a 20 29 3b 0d 09 0d 09 |+ inZ*in|Z );....|
|00000110| 2f 2f 69 66 20 28 20 69 | 6e 44 20 3c 20 30 20 29 |//if ( i|nD < 0 )|
|00000120| 0d 09 2f 2f 09 6d 20 3d | 20 2d 6d 3b 0d 09 09 0d |..//.m =| -m;....|
|00000130| 09 6d 58 20 3d 20 69 6e | 58 20 2a 20 6d 3b 0d 09 |.mX = in|X * m;..|
|00000140| 6d 59 20 3d 20 69 6e 59 | 20 2a 20 6d 3b 0d 09 6d |mY = inY| * m;..m|
|00000150| 5a 20 3d 20 69 6e 5a 20 | 2a 20 6d 3b 0d 09 6d 44 |Z = inZ |* m;..mD|
|00000160| 20 3d 20 69 6e 44 20 2a | 20 6d 3b 0d 7d 0d 0d 0d | = inD *| m;.}...|
|00000170| 0d 76 6f 69 64 20 50 6c | 61 6e 65 3a 3a 73 65 74 |.void Pl|ane::set|
|00000180| 28 20 63 6f 6e 73 74 20 | 56 33 26 20 69 6e 50 74 |( const |V3& inPt|
|00000190| 31 2c 20 63 6f 6e 73 74 | 20 56 33 26 20 69 6e 50 |1, const| V3& inP|
|000001a0| 74 32 2c 20 63 6f 6e 73 | 74 20 56 33 26 20 69 6e |t2, cons|t V3& in|
|000001b0| 50 74 33 20 29 20 7b 0d | 09 50 46 6c 6f 61 74 20 |Pt3 ) {.|.PFloat |
|000001c0| 6d 2c 20 76 31 78 2c 20 | 76 31 79 2c 20 76 31 7a |m, v1x, |v1y, v1z|
|000001d0| 2c 20 76 32 78 2c 20 76 | 32 79 2c 20 76 32 7a 2c |, v2x, v|2y, v2z,|
|000001e0| 20 78 2c 20 79 2c 20 7a | 3b 0d 0d 09 2f 2f 20 76 | x, y, z|;...// v|
|000001f0| 31 2e 73 75 62 74 72 61 | 63 74 28 20 69 6e 50 74 |1.subtra|ct( inPt|
|00000200| 31 2c 20 69 6e 50 74 32 | 20 29 3b 0d 09 2f 2f 20 |1, inPt2| );..// |
|00000210| 76 31 2e 73 75 62 74 72 | 61 63 74 28 20 69 6e 50 |v1.subtr|act( inP|
|00000220| 74 33 2c 20 69 6e 50 74 | 32 20 29 3b 0d 09 76 31 |t3, inPt|2 );..v1|
|00000230| 78 20 3d 20 69 6e 50 74 | 31 2e 6d 58 2d 69 6e 50 |x = inPt|1.mX-inP|
|00000240| 74 32 2e 6d 58 3b 20 76 | 31 79 20 3d 20 69 6e 50 |t2.mX; v|1y = inP|
|00000250| 74 31 2e 6d 59 2d 69 6e | 50 74 32 2e 6d 59 3b 20 |t1.mY-in|Pt2.mY; |
|00000260| 76 31 7a 20 3d 20 69 6e | 50 74 31 2e 6d 5a 2d 69 |v1z = in|Pt1.mZ-i|
|00000270| 6e 50 74 32 2e 6d 5a 3b | 20 0d 09 76 32 78 20 3d |nPt2.mZ;| ..v2x =|
|00000280| 20 69 6e 50 74 33 2e 6d | 58 2d 69 6e 50 74 32 2e | inPt3.m|X-inPt2.|
|00000290| 6d 58 3b 20 76 32 79 20 | 3d 20 69 6e 50 74 33 2e |mX; v2y |= inPt3.|
|000002a0| 6d 59 2d 69 6e 50 74 32 | 2e 6d 59 3b 20 76 32 7a |mY-inPt2|.mY; v2z|
|000002b0| 20 3d 20 69 6e 50 74 33 | 2e 6d 5a 2d 69 6e 50 74 | = inPt3|.mZ-inPt|
|000002c0| 32 2e 6d 5a 3b 20 0d 09 | 0d 09 2f 2f 20 72 2e 63 |2.mZ; ..|..// r.c|
|000002d0| 72 6f 73 73 28 20 76 31 | 2c 20 76 32 20 29 3b 0d |ross( v1|, v2 );.|
|000002e0| 09 78 20 3d 20 76 31 7a | 20 2a 20 76 32 79 20 2d |.x = v1z| * v2y -|
|000002f0| 20 76 32 7a 20 2a 20 76 | 31 79 3b 0d 09 79 20 3d | v2z * v|1y;..y =|
|00000300| 20 76 32 7a 20 2a 20 76 | 31 78 20 2d 20 76 31 7a | v2z * v|1x - v1z|
|00000310| 20 2a 20 76 32 78 3b 0d | 09 7a 20 3d 20 76 32 78 | * v2x;.|.z = v2x|
|00000320| 20 2a 20 76 31 79 20 2d | 20 76 31 78 20 2a 20 76 | * v1y -| v1x * v|
|00000330| 32 79 3b 0d 0d 09 2f 2f | 20 72 2e 6e 6f 72 6d 61 |2y;...//| r.norma|
|00000340| 6c 69 7a 65 28 29 3b 0d | 09 6d 20 3d 20 31 20 2f |lize();.|.m = 1 /|
|00000350| 20 73 71 72 74 28 20 78 | 20 2a 20 78 20 2b 20 79 | sqrt( x| * x + y|
|00000360| 20 2a 20 79 20 2b 20 7a | 20 2a 20 7a 20 29 3b 0d | * y + z| * z );.|
|00000370| 09 78 20 2a 3d 20 6d 3b | 0d 09 79 20 2a 3d 20 6d |.x *= m;|..y *= m|
|00000380| 3b 0d 09 7a 20 2a 3d 20 | 6d 3b 0d 09 0d 09 2f 2f |;..z *= |m;....//|
|00000390| 20 74 68 69 73 20 3c 2d | 20 72 0d 09 6d 58 20 3d | this <-| r..mX =|
|000003a0| 20 78 3b 0d 09 6d 59 20 | 3d 20 79 3b 0d 09 6d 5a | x;..mY |= y;..mZ|
|000003b0| 20 3d 20 7a 3b 0d 09 0d | 09 2f 2f 20 72 2e 64 6f | = z;...|.// r.do|
|000003c0| 74 28 20 69 6e 50 74 31 | 20 29 0d 09 6d 44 20 3d |t( inPt1| )..mD =|
|000003d0| 20 69 6e 50 74 31 2e 6d | 58 20 2a 20 78 20 2b 20 | inPt1.m|X * x + |
|000003e0| 69 6e 50 74 31 2e 6d 59 | 20 2a 20 79 20 2b 20 69 |inPt1.mY| * y + i|
|000003f0| 6e 50 74 31 2e 6d 5a 20 | 2a 20 7a 3b 0d 7d 0d 0d |nPt1.mZ |* z;.}..|
|00000400| 0d 76 6f 69 64 20 50 6c | 61 6e 65 3a 3a 73 65 74 |.void Pl|ane::set|
|00000410| 28 20 63 6f 6e 73 74 20 | 56 33 26 20 69 6e 4e 6f |( const |V3& inNo|
|00000420| 72 6d 61 6c 2c 20 50 46 | 6c 6f 61 74 20 69 6e 44 |rmal, PF|loat inD|
|00000430| 20 29 20 7b 0d 09 50 46 | 6c 6f 61 74 20 6d 20 3d | ) {..PF|loat m =|
|00000440| 20 31 20 2f 20 69 6e 4e | 6f 72 6d 61 6c 2e 6d 61 | 1 / inN|ormal.ma|
|00000450| 67 6e 69 74 75 64 65 28 | 29 3b 0d 09 0d 09 2f 2f |gnitude(|);....//|
|00000460| 69 66 20 28 20 69 6e 44 | 20 3c 20 30 20 29 0d 09 |if ( inD| < 0 )..|
|00000470| 2f 2f 09 6d 20 3d 20 2d | 6d 3b 0d 09 09 0d 09 6d |//.m = -|m;.....m|
|00000480| 58 20 3d 20 6d 20 2a 20 | 69 6e 4e 6f 72 6d 61 6c |X = m * |inNormal|
|00000490| 2e 6d 58 3b 0d 09 6d 59 | 20 3d 20 6d 20 2a 20 69 |.mX;..mY| = m * i|
|000004a0| 6e 4e 6f 72 6d 61 6c 2e | 6d 59 3b 0d 09 6d 5a 20 |nNormal.|mY;..mZ |
|000004b0| 3d 20 6d 20 2a 20 69 6e | 4e 6f 72 6d 61 6c 2e 6d |= m * in|Normal.m|
|000004c0| 5a 3b 0d 09 6d 44 20 3d | 20 69 6e 44 3b 0d 7d 0d |Z;..mD =| inD;.}.|
|000004d0| 0d 0d 0d 76 6f 69 64 20 | 50 6c 61 6e 65 3a 3a 69 |...void |Plane::i|
|000004e0| 6e 74 65 72 73 65 63 74 | 28 20 63 6f 6e 73 74 20 |ntersect|( const |
|000004f0| 50 6c 61 6e 65 26 20 69 | 6e 50 6c 61 6e 65 2c 20 |Plane& i|nPlane, |
|00000500| 56 33 26 20 6f 75 74 4c | 69 6e 65 2c 20 56 33 26 |V3& outL|ine, V3&|
|00000510| 20 6f 75 74 50 74 20 29 | 20 7b 0d 09 56 33 09 09 | outPt )| {..V3..|
|00000520| 6c 31 2c 20 6c 32 3b 0d | 09 50 46 6c 6f 61 74 09 |l1, l2;.|.PFloat.|
|00000530| 41 31 2c 20 41 32 2c 20 | 42 31 2c 20 42 32 2c 20 |A1, A2, |B1, B2, |
|00000540| 43 31 2c 20 43 32 2c 20 | 64 65 74 3b 0d 09 0d 09 |C1, C2, |det;....|
|00000550| 2f 2f 20 54 68 65 20 6c | 69 6e 65 20 69 73 20 74 |// The l|ine is t|
|00000560| 68 65 20 63 72 6f 73 73 | 20 70 72 6f 64 75 63 74 |he cross| product|
|00000570| 20 6f 66 20 74 68 65 20 | 74 77 6f 20 6e 6f 72 6d | of the |two norm|
|00000580| 61 6c 73 20 74 6f 20 65 | 61 63 68 20 70 6c 61 6e |als to e|ach plan|
|00000590| 65 0d 09 6f 75 74 4c 69 | 6e 65 2e 73 65 74 28 20 |e..outLi|ne.set( |
|000005a0| 69 6e 50 6c 61 6e 65 20 | 29 3b 0d 09 6f 75 74 4c |inPlane |);..outL|
|000005b0| 69 6e 65 2e 63 72 6f 73 | 73 28 20 2a 74 68 69 73 |ine.cros|s( *this|
|000005c0| 20 29 3b 0d 09 0d 09 2f | 2f 20 43 6f 6e 76 20 70 | );..../|/ Conv p|
|000005d0| 6c 61 6e 65 20 6e 6f 72 | 6d 61 6c 73 20 74 6f 20 |lane nor|mals to |
|000005e0| 6c 6f 63 61 6c 20 70 6c | 61 6e 65 20 63 6f 72 64 |local pl|ane cord|
|000005f0| 73 0d 09 6c 31 2e 73 65 | 74 28 20 2a 74 68 69 73 |s..l1.se|t( *this|
|00000600| 20 29 3b 0d 09 6c 32 2e | 73 65 74 28 20 69 6e 50 | );..l2.|set( inP|
|00000610| 6c 61 6e 65 20 29 3b 0d | 09 0d 09 6c 31 2e 74 6f |lane );.|...l1.to|
|00000620| 50 6c 61 6e 65 28 20 6f | 75 74 4c 69 6e 65 20 29 |Plane( o|utLine )|
|00000630| 3b 0d 09 6c 32 2e 74 6f | 50 6c 61 6e 65 28 20 6f |;..l2.to|Plane( o|
|00000640| 75 74 4c 69 6e 65 20 29 | 3b 0d 09 0d 09 0d 09 2f |utLine )|;....../|
|00000650| 2f 20 47 65 74 20 65 71 | 6e 73 20 6f 66 20 6c 69 |/ Get eq|ns of li|
|00000660| 6e 65 73 20 66 6f 72 6d | 65 64 20 62 79 20 6c 6f |nes form|ed by lo|
|00000670| 63 61 6c 20 70 6c 61 6e | 65 20 61 6e 64 20 65 61 |cal plan|e and ea|
|00000680| 63 68 20 70 6c 61 6e 65 | 0d 09 41 31 20 3d 20 6c |ch plane|..A1 = l|
|00000690| 31 2e 6d 58 3b 0d 09 42 | 31 20 3d 20 6c 31 2e 6d |1.mX;..B|1 = l1.m|
|000006a0| 59 3b 0d 09 43 31 20 3d | 20 6d 44 20 2a 20 73 71 |Y;..C1 =| mD * sq|
|000006b0| 72 74 28 20 41 31 2a 41 | 31 20 2b 20 42 31 2a 42 |rt( A1*A|1 + B1*B|
|000006c0| 31 20 29 3b 0d 09 41 32 | 20 3d 20 6c 32 2e 6d 58 |1 );..A2| = l2.mX|
|000006d0| 3b 0d 09 42 32 20 3d 20 | 6c 32 2e 6d 59 3b 0d 09 |;..B2 = |l2.mY;..|
|000006e0| 43 32 20 3d 20 69 6e 50 | 6c 61 6e 65 2e 6d 44 20 |C2 = inP|lane.mD |
|000006f0| 2a 20 73 71 72 74 28 20 | 41 32 2a 41 32 20 2b 20 |* sqrt( |A2*A2 + |
|00000700| 42 32 2a 42 32 20 29 3b | 0d 09 0d 09 2f 2f 20 43 |B2*B2 );|....// C|
|00000710| 6f 6d 70 75 74 65 20 6c | 6f 63 61 6c 20 69 6e 74 |ompute l|ocal int|
|00000720| 65 72 73 65 63 74 69 6f | 6e 20 6f 66 20 74 77 6f |ersectio|n of two|
|00000730| 20 70 6c 61 6e 65 73 0d | 09 64 65 74 20 3d 20 42 | planes.|.det = B|
|00000740| 31 2a 41 32 20 2d 20 42 | 32 2a 41 31 3b 0d 09 6f |1*A2 - B|2*A1;..o|
|00000750| 75 74 50 74 2e 6d 58 20 | 3d 20 28 20 43 32 2a 42 |utPt.mX |= ( C2*B|
|00000760| 31 20 2d 20 43 31 2a 42 | 32 20 29 20 2f 20 64 65 |1 - C1*B|2 ) / de|
|00000770| 74 3b 0d 09 6f 75 74 50 | 74 2e 6d 59 20 3d 20 28 |t;..outP|t.mY = (|
|00000780| 20 43 31 2a 41 32 20 2d | 20 43 32 2a 41 31 20 29 | C1*A2 -| C2*A1 )|
|00000790| 20 2f 20 64 65 74 3b 0d | 09 6f 75 74 50 74 2e 6d | / det;.|.outPt.m|
|000007a0| 5a 20 3d 20 6f 75 74 50 | 74 2e 6d 58 20 2a 20 41 |Z = outP|t.mX * A|
|000007b0| 31 20 2b 20 6f 75 74 50 | 74 2e 6d 59 20 2a 20 42 |1 + outP|t.mY * B|
|000007c0| 31 20 2d 20 43 31 3b 0d | 09 6f 75 74 50 74 2e 6d |1 - C1;.|.outPt.m|
|000007d0| 5a 20 3d 20 6f 75 74 50 | 74 2e 6d 58 20 2a 20 41 |Z = outP|t.mX * A|
|000007e0| 32 20 2b 20 6f 75 74 50 | 74 2e 6d 59 20 2a 20 42 |2 + outP|t.mY * B|
|000007f0| 32 20 2d 20 43 32 3b 0d | 09 6f 75 74 50 74 2e 6d |2 - C2;.|.outPt.m|
|00000800| 5a 20 3d 20 30 3b 0d 09 | 0d 09 2f 2f 20 4c 6f 63 |Z = 0;..|..// Loc|
|00000810| 61 6c 20 74 6f 20 67 6c | 6f 62 61 6c 0d 09 6f 75 |al to gl|obal..ou|
|00000820| 74 50 74 2e 66 72 6f 6d | 50 6c 61 6e 65 28 20 6f |tPt.from|Plane( o|
|00000830| 75 74 4c 69 6e 65 20 29 | 3b 0d 7d 0d 0d 0d 0d 0d |utLine )|;.}.....|
|00000840| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000850| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000860| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000870| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000880| 00 00 01 00 00 00 01 54 | 00 00 00 54 00 00 00 46 |.......T|...T...F|
|00000890| 45 8c 31 10 a7 13 7d fa | d2 18 2c f4 72 4c 30 a7 |E.1...}.|..,.rL0.|
|000008a0| 15 00 91 38 77 c1 49 9d | a3 24 e5 2b cb de a5 92 |...8w.I.|.$.+....|
|000008b0| 09 50 6c 61 6e 65 2e 63 | 70 70 6f 72 6c 64 2e 68 |.Plane.c|pporld.h|
|000008c0| 2e 32 35 30 6e 2e 73 69 | 74 20 63 6f 70 79 20 31 |.250n.si|t copy 1|
|000008d0| 00 23 50 61 72 74 53 49 | 54 21 00 00 00 00 00 00 |.#PartSI|T!......|
|000008e0| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000008f0| 00 00 b2 c4 42 cb 00 00 | 00 00 00 00 01 9a 69 cd |....B...|......i.|
|00000900| 87 a4 e3 d0 8d b8 12 c0 | 33 a1 ab b3 38 b8 9b cc |........|3...8...|
|00000910| 8a 15 53 5c 26 88 11 9d | 7d ea f9 80 35 41 41 59 |..S\&...|}...5AAY|
|00000920| 0e c7 b2 a2 9f b1 79 2f | f3 2f 16 34 12 09 c4 a6 |......y/|./.4....|
|00000930| a9 2c 35 65 d4 cc 9c 99 | ce 9b bb 59 0e 82 1c 91 |.,5e....|...Y....|
|00000940| 11 1a a0 62 2a ac 22 ca | d3 0e 98 7b 2e e6 e7 db |...b*.".|...{....|
|00000950| 87 27 f7 33 14 c3 3d d2 | 7f ee 4b 77 bf fe b7 f0 |.'.3..=.|..Kw....|
|00000960| 00 0e 37 1a 5b 3b 7d 0c | 4e 87 80 84 86 58 83 10 |..7.[;}.|N....X..|
|00000970| 5a 71 28 e3 31 2f e4 55 | b7 5b 0b 81 f7 6a a3 cf |Zq(.1/.U|.[...j..|
|00000980| 00 00 00 48 00 09 4d 6f | 6e 61 63 6f 00 00 00 00 |...H..Mo|naco....|
|00000990| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|000009a0| 00 00 00 00 00 00 00 03 | 00 04 00 4c 00 08 02 40 |........|...L...@|
|000009b0| 02 5e 00 4c 00 08 02 40 | 02 5e b3 bf a7 bc 00 00 |.^.L...@|.^......|
|000009c0| 02 45 00 00 02 45 00 00 | 00 bf 01 00 00 00 00 04 |.E...E..|........|
|000009d0| 00 01 00 01 00 00 01 00 | 00 00 01 54 00 00 00 54 |........|...T...T|
|000009e0| 00 00 00 46 05 c8 ee f0 | 17 82 00 00 00 1c 00 46 |...F....|.......F|
|000009f0| 00 01 4d 50 53 52 00 00 | 00 12 4d 57 42 42 00 00 |..MPSR..|..MWBB..|
|00000a00| 00 1e 03 ed ff ff 00 00 | 00 00 00 00 00 00 03 f0 |........|........|
|00000a10| ff ff 00 00 00 4c 00 00 | 00 00 00 00 00 00 00 00 |.....L..|........|
|00000a20| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000a30| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000a40| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000a50| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000a60| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
|00000a70| 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 |........|........|
+--------+-------------------------+-------------------------+--------+--------+